{{#hasEnums}}

{{^stringEnums}}
export namespace {{classname}} {
{{/stringEnums}}
{{#vars}}
    {{#isEnum}}
{{#stringEnums}}
export enum {{classname}}{{enumName}} {
{{#allowableValues}}
{{#enumVars}}
    {{name}} = {{{value}}}{{^-last}},{{/-last}}
{{/enumVars}}
{{/allowableValues}}
};
{{/stringEnums}}
{{^stringEnums}}
    export type {{enumName}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
    export const {{enumName}} = {
    {{#allowableValues}}
    {{#enumVars}}
        {{name}}: {{{value}}} as {{enumName}}{{^-last}},{{/-last}}
    {{/enumVars}}
    {{/allowableValues}}
    };
{{/stringEnums}}
    {{/isEnum}}
{{/vars}}
{{^stringEnums}}}{{/stringEnums}}
{{/hasEnums}}